此文同時發佈於好讀版
佇列(Queue)又稱排隊,是一種資料結構。也就是排隊的特性:先進先出(First-In-First-Out)。
通常 Queue 的資料結構至少會實作兩種方法:
Array.unshift()
來從隊伍的後方加入新成員(陣列最左)Array.pop()
來從隊伍的最前方移出成員(陣列最右)class Queue {
constructor() {
this.data = [];
}
add(car) {
this.data.unshift(car);
}
remove() {
return this.data.pop();
}
}
Java 本身就有 LinkedList 物件來實作 Queue 介面
要注意的是 Java 的 LinkedList 的 add 是由左而右的先進先出,所以是往右邊加進去。
Queue<String> carQueue = new LinkedList<String>();
//Add elements to the Queue
carQueue.add("car1");
carQueue.add("car2");
carQueue.add("car3");
carQueue.add("car4");
carQueue.add("car5");
System.out.println("Elements in Queue:"+carQueue);
這時的輸出是
[car1, car2, car3, car4, car5]
這時使用 LinkedList 的 remove()
就會把最先進去的移除了
[car2, car3, car4, car5]
另外,在 Java 中如果一定要從左邊加進去,要用 LinkedList 為主要型態而使用 addFirst()
方法,而不能使用原始的 Queue 來實作了。
LinkedList<String> carQueue2 = new LinkedList<String>();
//Add elements to the Queue
carQueue2.addFirst("car1");
carQueue2.addFirst("car2");
carQueue2.addFirst("car3");
carQueue2.addFirst("car4");
carQueue2.addFirst("car5");
System.out.println("Elements in Queue2:"+carQueue2);
這時就會輸出如最初始的圖那樣增加
Elements in Queue2:[car5, car4, car3, car2, car1]
此文同時發佈於好讀版